home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 4 / Meeting Pearls Vol. IV (1996)(GTI - Schatztruhe)[!].iso / Pearls / dev / ASM-Src / LibraryFrame / Macros.i < prev    next >
Text File  |  1996-06-19  |  3KB  |  194 lines

  1.     IFND    MY_MACROS_I
  2. MY_MACROS_I     SET     1
  3. *****
  4. *****   Macros.I
  5. *****
  6. *****   Version 1.0
  7. *****
  8.  
  9.         IFND    EXEC_TYPES_I
  10.         INCLUDE Exec/Types.I
  11.         ENDC
  12.  
  13.  
  14. VGET                    MACRO
  15.             Move.\0 var_\1(a5),\2
  16.             ENDM
  17.  
  18. VPUT                    MACRO
  19.             Move.\0 \1,var_\2(a5)
  20.             ENDM
  21.  
  22. VADD                    MACRO
  23.             IFEQ    NARG-1
  24.              Add.\0  #1,var_\1(a5)
  25.             ELSE
  26.              Add.\0  \1,var_\2(a5)
  27.             ENDC
  28.             ENDM
  29.  
  30. VSUB                    MACRO
  31.             IFEQ    NARG-1
  32.              Sub.\0  #1,var_\1(a5)
  33.             ELSE
  34.              Sub.\0  \1,var_\2(a5)
  35.             ENDC
  36.             ENDM
  37.  
  38. VTST                    MACRO
  39.             Tst.\0  var_\1(a5)
  40.             ENDM
  41.  
  42. VCMP                    MACRO
  43.             IFC     '\*LEFT(\1,1)','#'
  44.              Cmp.\0  \1,var_\2(a5)
  45.             ELSE
  46.              Cmp.\0  var_\2(a5),\1
  47.             ENDC
  48.             ENDM
  49.  
  50. VLEA                    MACRO
  51.             Lea     var_\1(a5),\2
  52.             ENDM
  53.  
  54. VOR                     MACRO
  55.             Or.\0   \1,var_\2(a5)
  56.             ENDM
  57.  
  58. VAND                    MACRO
  59.             And.\0  \1,var_\2(a5)
  60.             ENDM
  61.  
  62. VNOT                    MACRO
  63.             Not.\0  var_\1(a5)
  64.             ENDM
  65.  
  66. SGET                    MACRO
  67.             Move.\0 var_\1(sp),\2
  68.             ENDM
  69.  
  70. SPUT                    MACRO
  71.             Move.\0 \1,var_\2(sp)
  72.             ENDM
  73.  
  74. SPUTM                   MACRO
  75.             Movem.\0 \1,var_\2(sp)
  76.             ENDM
  77.  
  78. SADD                    MACRO
  79.             IFEQ    NARG-1
  80.              Add.\0  #1,var_\1(sp)
  81.             ELSE
  82.              Add.\0  \1,var_\2(sp)
  83.             ENDC
  84.             ENDM
  85.  
  86. SSUB                    MACRO
  87.             IFEQ    NARG-1
  88.              Sub.\0  #1,var_\1(sp)
  89.             ELSE
  90.              Sub.\0  \1,var_\2(sp)
  91.             ENDC
  92.             ENDM
  93.  
  94. SNOT                    MACRO
  95.             Not.\0  var_\1(sp)
  96.             ENDM
  97.  
  98. STST                    MACRO
  99.             Tst.\0  var_\1(sp)
  100.             ENDM
  101.  
  102. SCMP                    MACRO
  103.             IFC     '\*LEFT(\1,1)','#'
  104.              Cmp.\0  \1,var_\2(sp)
  105.             ELSE
  106.              Cmp.\0  var_\2(sp),\1
  107.             ENDC
  108.             ENDM
  109.  
  110. SLEA                    MACRO
  111.             Lea     var_\1(sp),\2
  112.             ENDM
  113.  
  114. INITVARS                MACRO
  115. \1                      EQU     \2
  116. _VARCNT                 SET     \2
  117.             ENDM
  118.  
  119. LVAR                    MACRO
  120. var_\1                  EQU     _VARCNT
  121. _VARCNT                 SET     _VARCNT+4
  122.             ENDM
  123.  
  124. WVAR                    MACRO
  125. var_\1                  EQU     _VARCNT
  126. _VARCNT                 SET     _VARCNT+2
  127.             ENDM
  128.  
  129. BVAR                    MACRO
  130. var_\1                  EQU     _VARCNT
  131. _VARCNT                 SET     _VARCNT+1
  132.             ENDM
  133.  
  134. IVAR                    MACRO
  135. var_\1                  EQU     _VARCNT
  136. _VARCNT                 SET     _VARCNT+\2
  137.             ENDM
  138.  
  139. ENDVARS                 MACRO
  140. \1_SIZE                 SET     _VARCNT
  141.             ENDM
  142.  
  143. TAGS                    MACRO
  144. \1
  145. _TAGOFFSET              SET     0
  146.             ENDM
  147.  
  148. TAG                     MACRO
  149. _TAGOFFSET              SET     _TAGOFFSET+8
  150.             Dc.l    \1,\2
  151.             ENDM
  152.  
  153. ENDTAGS                 MACRO
  154.             Dc.l    TAG_DONE
  155.             ENDM
  156.  
  157. CALL                    MACRO
  158.             IFEQ    NARG-2
  159.              IFC     '\1','Exec'
  160.               Move.l 4.w,a6
  161.              ELSE
  162.               VGET.l \1Base,a6
  163.              ENDC
  164.              Jsr    _LVO\2(a6)
  165.             ELSE
  166.              Jsr    _LVO\1(a6)
  167.             ENDC
  168.             ENDM
  169.  
  170. OLIB                    MACRO
  171.             Lea     \1Name(pc),a1
  172.             Moveq   #\2,d0
  173.             CALL    Exec,OpenLibrary
  174.             VPUT.l  d0,\1Base
  175.             ENDM
  176.  
  177. CLIB                    MACRO
  178.             VGET.l  \1Base,a1
  179.             CALL    Exec,CloseLibrary
  180.             ENDM
  181.  
  182. GETMEM                  MACRO
  183.             Move.l  #\1,d0
  184.             Move.l  #\2,d1
  185.             CALL    Exec,AllocVec
  186.             VPUT.l  d0,\3
  187.             ENDM
  188.  
  189. FREEMEM                 MACRO
  190.             VGET.l  \1,a1
  191.             CALL    Exec,FreeVec
  192.             ENDM
  193.  ENDC
  194.